package qc.module.iot.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import qc.common.core.enums.CommunicationChannelTypeEnum;
import qc.common.core.enums.iot.IotPacketsDataFrameTypeEnum;
import qc.common.core.enums.iot.IotPacketsDataProtocolEnum;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * IotPackets
 *
 * @author QuCheng Tech
 * @since 2025/10/28
 */
@Data
@TableName("iot_packets_frame")
public class IotFramePackets implements Serializable, Cloneable {
    /**
     * 记录ID
     */
    @TableId
    private String id;
    /**
     * 接收时间;写入/接收时间
     */
    private LocalDateTime intm;
    /**
     * 通道类型
     */
    private CommunicationChannelTypeEnum channeltype;
    /**
     * 通道名称;网络端口或串口等
     */
    private String channelname;
    /**
     * 报文内容;HEX字符串
     */
    private String hex;
    /**
     * 来源端口;网络端口或串口等
     */
    private String port;
    /**
     * 数据协议;对应枚举IotPacketsDataProtocolEnum
     */
    private IotPacketsDataProtocolEnum dataprotocol;
    /**
     * 数据协议名称
     */
    private String protocolname;
    /**
     * 站点编码;报文中的站点编码/遥测站地址
     */
    private String stcd;
    /**
     * 时标，报文中的数据时标或携带的时标
     */
    private LocalDateTime tm;
    /**
     * 报文类型;心跳、数据、回复等
     */
    private IotPacketsDataFrameTypeEnum frametype;
    /**
     * 数据帧名称
     */
    private String framename;
    /**
     * 标记;为枚举IotPacketsFrameFlagEnum值累加
     */
    private Integer flag;
    /**
     * 解析出的内容
     */
    private String content;
    /**
     * 更新时间，修改解析标识或更新其他字段属性值的时间
     */
    private LocalDateTime uptm;
}
